# 给你一个链表的头节点 head 和一个整数 val ，请你删除链表中所有满足 Node.val == val 的节点，并返回 新的头节点

# 示例 1：
# 输入：head = [1,2,6,3,4,5,6], val = 6
# 输出：[1,2,3,4,5]

# 示例 2：
# 输入：head = [], val = 1
# 输出：[]

# 示例 3：
# 输入：head = [7,7,7,7], val = 7
# 输出：[]



# Definition for singly-linked list.
class ListNode:
    def __init__(self, val=0, next=None):
        self.val = val
        self.next = next
class Solution:
    def removeElements(self, head: ListNode, val: int) -> ListNode:
        tmp = ListNode(next=head)
        res = tmp
        while res.next:
            if res.next.val == val:
                res.next = res.next.next
            else:
                res = res.next
        if res.val == val:
            res.next = None
            
        return tmp.next